home *** CD-ROM | disk | FTP | other *** search
- // Persistence Of Vision raytracer version 2.0 sample file.
-
- // piece 3
- // by Truman Brown (12/91)
-
- // Due to the large number of objects, you will probably have to
- // have a lot of memory to render this scene.
- // Rendering time using a 25Mhz 386 w/Cyrix fpu is approximately 60 hours.
-
- // The lighting is intentionally dim when the image is rendered.
- // You can enhance the image using PicLab's gamma, brightness, and
- // contrast command when you post-process the image.
-
- #include "colors.inc"
- #include "textures.inc"
- #include "shapes.inc"
-
- #declare YourTexture =
- texture { /* Dan Farmer's oak texture { */
- pigment {
- wood
- turbulence 0.05
- color_map {
- [0.00 0.10 color red 0.42 green 0.26 blue 0.15
- color red 0.42 green 0.26 blue 0.15]
- [0.10 0.90 color red 0.42 green 0.26 blue 0.15
- color red 0.52 green 0.37 blue 0.26]
- [0.90 1.01 color red 0.52 green 0.37 blue 0.26
- color red 0.52 green 0.37 blue 0.26]
- }
- rotate 90*x
- scale 3
- }
- }
-
- #declare BallTexture1 = /* Shiny sugar candy red */
- texture {
- pigment { Firebrick }
- finish {
- ambient 0.0
- diffuse 0.6
- specular 1.00
- roughness 0.00001
- }
- }
-
- #declare RodTexture1 = /* Dim goldish */
- texture {
- pigment { Sienna }
- finish {
- ambient 0.0
- diffuse 0.6
- specular 1.00
- roughness 0.00001
- }
- }
-
- #include "curly-q.inc" /* 1251 spheres rotating around in a ring */
- /* brought to you by Spiral 2.0 and ctds 1.6 */
-
- camera {
- location < 7.0, 50.0, -30.0 > /* Up high and in close. */
- direction < 0.0, 0.0, 2.0 > /* Though this doesn't highlight */
- up < 0.0, 1.0, 0.0 > /* the height of the piece, it */
- right < 4/3, 0.0, 0.0 > /* gives the effect i'm looking */
- look_at < 0.0, 15.0, 0.0 > /* for. Feel free to change. */
- }
-
- light_source { <99, 70, -90> color red 0.1 green 0.1 blue 0.1 }
-
- light_source { <-35, 80, -80> color red 0.5 green 0.5 blue 0.5 }
-
- #declare xrod = /* Horizontal left-right rod floating at <0 0 0> */
- object {
- Cylinder_X
- clipped_by {
- plane { x, 100.0 }
- plane { -x, 100.0 }
- }
- texture {
- RodTexture1
- }
- scale <1.0, 0.3, 0.3>
- }
-
- #declare zrod = /* Horizontal in-out rod floating at <0 0 0> */
- object {
- Cylinder_Z
- clipped_by {
- plane { z, 100.0 }
- plane { -z, 100.0 }
- }
- texture {
- RodTexture1
- }
- scale <0.3, 0.3, 1.0>
- }
-
- union { /* Build a floor grid */
- object { zrod translate <-100, 0, 0> } /* extending beyond */
- object { zrod translate < -92, 0, 0> } /* camera view to be */
- object { zrod translate < -84, 0, 0> } /* captured in reflec-*/
- object { zrod translate < -76, 0, 0> } /* tions. */
- object { zrod translate < -68, 0, 0> }
- object { zrod translate < -60, 0, 0> }
- object { zrod translate < -52, 0, 0> }
- object { zrod translate < -44, 0, 0> }
- object { zrod translate < -36, 0, 0> }
- object { zrod translate < -28, 0, 0> }
- object { zrod translate < -20, 0, 0> }
- object { zrod translate < -12, 0, 0> }
- object { zrod translate < -4, 0, 0> }
- object { zrod translate < 4, 0, 0> }
- object { zrod translate < 12, 0, 0> }
- object { zrod translate < 20, 0, 0> }
- object { zrod translate < 28, 0, 0> }
- object { zrod translate < 36, 0, 0> }
- object { zrod translate < 44, 0, 0> }
- object { zrod translate < 52, 0, 0> }
- object { zrod translate < 60, 0, 0> }
- object { zrod translate < 68, 0, 0> }
- object { zrod translate < 76, 0, 0> }
- object { zrod translate < 84, 0, 0> }
- object { zrod translate < 92, 0, 0> }
- object { zrod translate < 100, 0, 0> }
-
- object { xrod translate < 0, 0, -100> }
- object { xrod translate < 0, 0, -92> }
- object { xrod translate < 0, 0, -84> }
- object { xrod translate < 0, 0, -76> }
- object { xrod translate < 0, 0, -68> }
- object { xrod translate < 0, 0, -60> }
- object { xrod translate < 0, 0, -52> }
- object { xrod translate < 0, 0, -44> }
- object { xrod translate < 0, 0, -36> }
- object { xrod translate < 0, 0, -28> }
- object { xrod translate < 0, 0, -20> }
- object { xrod translate < 0, 0, -12> }
- object { xrod translate < 0, 0, -4> }
- object { xrod translate < 0, 0, 4> }
- object { xrod translate < 0, 0, 20> }
- object { xrod translate < 0, 0, 36> }
- object { xrod translate < 0, 0, 52> }
- object { xrod translate < 0, 0, 64> }
- object { xrod translate < 0, 0, 72> }
- object { xrod translate < 0, 0, 80> }
- object { xrod translate < 0, 0, 88> }
- object { xrod translate < 0, 0, 100> }
- bounded_by {
- object { Cube scale <101.0, 0.5, 101.0> }
- }
- }
-
- sphere { /* Big ellipsoid to reflect stuff */
- <0, 0, 0>, 1
- scale <6.25, 4.0, 6.25>
- translate <0.0, 14.5, 0.0>
-
- texture {
- pigment { SteelBlue }
- finish {
- ambient 0.0
- diffuse 0.6
- reflection 0.99
- specular 1.0
- roughness 0.00001
- }
- }
- }
-
- plane { /* Sub-plane { to reflect poles and curly-q */
- y, -1.5
- texture {
- pigment {
- marble
- turbulence 0.65
- color_map {
- [0.0 0.67 color Black
- color DimGray]
- [0.67 0.775 color DimGray
- color SteelBlue]
- [0.775 1.001 color SteelBlue
- color Black]
- }
- scale <10, 8, 8>
- scale <20, 20, 20> /* Double scaled while debugging. */
- }
- finish {
- ambient 0.05
- diffuse 0.75
- specular 1.0
- roughness 0.00002432
- reflection 0.95
- }
- } /* This gets the gray under the */
- } /* curly-q and gets the blue to */
- /* reflect off the curly-q nicely.*/
-
- object { spiral translate <0.0, 14.75, 0.0> } /* The curly-q! */
-
- #declare ball = /* Ball to top poles placed inside of curly-q */
- sphere {
- <0, 14.75, 0>, 2
- texture {
- pigment { Firebrick }
- finish {
- reflection 0.95
- ambient 0.0
- diffuse 0.5
- specular 1.0
- roughness 0.00001
- }
- }
- }
-
- #declare pole = /* Pole to be placed inside of curly-q */
- object {
- Disk_Y
- scale <0.5, 14.75, 0.5>
-
- texture {
- pigment { Firebrick }
- finish {
- reflection 0.95
- ambient 0.0
- diffuse 0.5
- specular 1.0
- roughness 0.00001
- }
- }
- }
- /* Construct the poles. */
- object { pole translate <11, 0, 0> rotate <0, 18, 0> } /* Could have made this */
- object { pole translate <11, 0, 0> rotate <0, 54, 0> } /* a composite, but */
- object { pole translate <11, 0, 0> rotate <0, 90, 0> } /* didn't see the point.*/
- object { pole translate <11, 0, 0> rotate <0, 126, 0> }
- object { pole translate <11, 0, 0> rotate <0, 162, 0> }
- object { pole translate <11, 0, 0> rotate <0, 198, 0> }
- object { pole translate <11, 0, 0> rotate <0, 234, 0> }
- object { pole translate <11, 0, 0> rotate <0, 270, 0> }
- object { pole translate <11, 0, 0> rotate <0, 306, 0> }
- object { pole translate <11, 0, 0> rotate <0, 342, 0> }
- /* Construct the balls. */
- object { ball translate <11, 0, 0> rotate <0, 18, 0> }
- object { ball translate <11, 0, 0> rotate <0, 54, 0> }
- object { ball translate <11, 0, 0> rotate <0, 90, 0> }
- object { ball translate <11, 0, 0> rotate <0, 126, 0> }
- object { ball translate <11, 0, 0> rotate <0, 162, 0> }
- object { ball translate <11, 0, 0> rotate <0, 198, 0> }
- object { ball translate <11, 0, 0> rotate <0, 234, 0> }
- object { ball translate <11, 0, 0> rotate <0, 270, 0> }
- object { ball translate <11, 0, 0> rotate <0, 306, 0> }
- object { ball translate <11, 0, 0> rotate <0, 342, 0> }
-
- #declare Connector_1 = cylinder {
- <0, 0, 0>, <1, 0, 0>, 1
-
- texture {
- pigment { DimGray }
- finish {
- ambient 0.0
- diffuse 0.6
- specular 1.0
- roughness 0.00001
- reflection 0.25
- }
- }
- }
-
- #include "links.inc" /* Poles linking interior balls and poles */
- object { links rotate <0, 18, 0> translate <0.0, 14.75, 0.0> }
-